﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace milanov
{
    //Thom/Eden/Jacco
    public partial class Upload : System.Web.UI.Page
    {
        string filename;
        protected void Page_Load(object sender, EventArgs e)
        {
            //Admin restriction - Jacco
            if (!Fotos.isAdmin(User.Identity.Name))
            {
                Server.Transfer("Default.aspx");
            }
        }

        protected void UploadButton_Click(object sender, EventArgs e)
        {
            //DateTime time = DateTime.Now;
            
            if (FileUpload.HasFile)
            {
                try
                {
                    if (FileUpload.PostedFile.ContentType == "image/jpeg" || FileUpload.PostedFile.ContentType == "image/png")
                    {
                        if (FileUpload.PostedFile.ContentLength < 20000000)
                        {
                            filename = Path.GetFileName(FileUpload.FileName);
                            //sla bestand op @ ~/Pictures/Bestandsnaam.jpg
                            FileUpload.SaveAs(Server.MapPath("~/Pictures/") + filename);
                            //Roept een methode aan die de foto encrypt
                            UploadButton.Text = Fotos.EncryptFile(Server.MapPath("~/Pictures/" + filename), Server.MapPath("~/Pictures/secret/" + filename + "E"), "1234512345678976");
                            //geef bestand weer
                            //Image1.ImageUrl = "~/Pictures/" + filename;
                            //roep methode aan die watermark plaatst
                            Fotos.SetWatermark(filename, Request.MapPath("/Pictures"));
                            //plaats het bestand met watermark vanuit /demo/ folder
                            Image2.ImageUrl = "~/Pictures/demo/demo_" + filename;
                            StatusLabel.Text = "Upload status: File uploaded!";
                            //test~~~ voor verkrijgen van resolutie vd afbeelding
                            using (System.Drawing.Image objImage = System.Drawing.Image.FromFile(Server.MapPath("~/Pictures/") + filename))
                            //width = objImage.Width;
                            //height = objImage.Height; 
                            //Roep file methode aan, deze methode plaatst de ingevulde waarden in de database                                                             selecteert de huidige item van de dropdownlist als tekst
                            UploadButton.Text = Fotos.file(filename, FileUpload.PostedFile.ContentLength, objImage.Width, objImage.Height, NaamBox.Text, CommentBox.Text, DropDownList1.SelectedItem.Text, DateTime.Now, Convert.ToDecimal(PrijsBox.Text));
                            //maak de boxjes weer leeg
                            NaamBox.Text = "";
                            CommentBox.Text = "";

                        }
                        //wanneer de code in de else komt was de contentlength meer dan 20000000
                        else
                            StatusLabel.Text = "Het bestand moet kleiner zijn dan 20 MB!";
                    }
                    //wanneer hij bij deze else komt was de ContentType geen jpeg of png.
                    else
                    {
                        StatusLabel.Text = "Upload mislukt, alleen JPEG, JPG en PNG afbeeldingen!";
                    }

                }
                //voor de andere errors
                catch (Exception ex)
                {
                    StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
                }
                finally
                {
                    if (File.Exists(Server.MapPath("~/Pictures/" + filename)))
                    {
                        File.Delete(Server.MapPath("~/Pictures/") + filename);
                    }
                }
            }
        }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }
        // wanneer erop Button1 gedrukt wordt, wordt er een category aan de database toegevoegt en wordt de pagina herladen
        protected void Button1_Click(object sender, EventArgs e)
        {
            //pak de textbox2 string en voeg dat met de methode als een niewue categorie toe
            Button1.Text = Fotos.categorie(TextBox2.Text);
            //ververs pagina
            Response.Redirect(Request.RawUrl);
        }

        protected void DeleteButton_Click(object sender, EventArgs e)
        {
            //pak dropdown string text en verwijder die categorie uit de DB, plaats de return string in DeleteLabel (succes of fail)
            DeleteLabel.Text = Fotos.rmcategorie(DropDownList2.Text);
            //ververs pagina
            Response.Redirect(Request.RawUrl);
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            UploadButton.Text = Fotos.EncryptFile(Server.MapPath("~/Pictures/tux.png"), Server.MapPath("~/Pictures/tux.png" + "E"), "1234512345678976");
        }


    }
}